package com.ylyq.ylxx.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.ylyq.ylxx.entity.YlyqCover;
import com.ylyq.ylxx.model.bean.CreateCoverResponse;
import com.ylyq.ylxx.model.bean.GetCountResponse;
import com.ylyq.ylxx.model.bean.GetYlyqCover;
import com.ylyq.ylxx.model.bean.SaveYlyqCoverResponse;
import com.ylyq.ylxx.model.request.CreateCoverRequest;
import com.ylyq.ylxx.model.request.RemoveCoverRequest;
import com.ylyq.ylxx.model.request.SaveYlyqCover;
import com.ylyq.ylxx.model.request.UpdateCoverRequest;

import java.util.List;

/**
 * @author 577
 * @className YlyqCoverService
 * @date 2020/10/29
 **/
public interface IYlyqCoverService extends IService<YlyqCover> {
    
    /**
     * 功能描述：新增落地页
     * @author 577
     * @param
     * @return 
     * @date 2020/10/30
     **/
    SaveYlyqCoverResponse save(SaveYlyqCover saveYlyqCover);
    
    /**
     * 功能描述：删除落地页
     * @author 577
     * @param removeCoverRequest 删除落地页所需要的数据
     * @return 
     * @date 2020/11/4
     **/
    int delete(RemoveCoverRequest removeCoverRequest);
    
    /**
     * 功能描述：删除模板落地页
     * @author 577
     * @param id 落地页ID
     * @return 
     * @date 2020/11/4
     **/
    int deleteTemplateCover(String id);
    
    /**
     * 功能描述：复制落地页
     * @author 577
     * @param id 落地页ID
     * @return
     * @date 2020/10/30
     **/
    SaveYlyqCoverResponse copy(String id);

    /**
     * 功能描述：获取落地页列表
     * @author 577
     * @param pageMode 落地页类型
     * @return
     * @date 2020/10/30
     **/
    List<GetYlyqCover> getCover(String pageMode);

    /**
     * 功能描述：获取模版落地页列表
     * @author 577
     * @param
     * @return
     * @date 2020/11/4
     **/
    List<GetYlyqCover> getTemplateCover();

    /**
     * 功能描述：获取落地页详情
     * @author 577
     * @param id 落地页ID
     * @return
     * @date 2020/10/30
     **/
    GetYlyqCover getCoverDetails(String id);

    /**
     * 功能描述：使用模板落地页
     * @author 577
     * @param id 落地页ID
     * @return
     * @date 2020/10/30
     **/
    SaveYlyqCoverResponse useTemplateCover(String id);

    /**
     * 功能描述：创建第三方落地页站点
     * @author 577
     * @param createCoverRequest 创建第三方落地页站点的请求参数
     * @return
     * @date 2020/10/30
     **/
    CreateCoverResponse publishCover(CreateCoverRequest createCoverRequest);

    /**
     * 功能描述：获取落地页关键指标数据
     * @author 577
     * @param
     * @return
     * @date 2020/10/30
     **/
    GetCountResponse getCount(String id);

    /**
     * 功能描述：记录落地页关键指标数据
     * @author 577
     * @param id 落地页ID
     * @return 
     * @date 2020/10/30
     **/
    int updateVisitCount(String id);

    /**
     * 功能描述：落地页设置为模板落地页
     * @author 577
     * @param id 落地页ID
     * @return
     * @date 2020/10/30
     **/
    SaveYlyqCoverResponse updateCover(String id);

    /**
     * 功能描述：更新落地页
     * @author 577
     * @param
     * @return
     * @date 2020/10/30
     **/
    int updateById(UpdateCoverRequest updateCoverRequest);
}
